#include<iostream>
using namespace std;
#include<cstring> // 为了使用 strlen() 、strcpy()

struct stringy{
    char *str;  // 字符串指针
    int ct;  // 字符串长度，不包括 '\0'
};

void set(stringy &,const char*);

void show(const char*, int n = 1);

void show(const stringy&, int n = 1);

int main()
{
    stringy beany;
    char testing[]="Reality isn't what it used to be.";
    set(beany,testing); // 第一个参数是一个引用
                        // 划分内存来存储 testing 的拷贝
                        // 初始化 成员 str 和 ct
    show(beany);         // 打印一次字符串
    show(beany,2);        // 打印两个字符串
    testing[0]='D';
    testing[1]='u';
    show(testing);        // 打印一次字符串
    show(testing,3);    // 打印三次字符串
    show("Done!");
    return 0;
}

void set(stringy& strgy,const char* cr)
{
    int crsize = strlen(cr);
    strgy.str = new char[crsize];
    strgy.ct = crsize;
    strgy.str = strcpy(strgy.str,cr);
}

void show(const stringy& strgy, int n )
{
    while ( n)
    {
        cout << strgy.str;
        n--;
    }
}

void show(const char* cr, int n)
{
    while ( n)
    {
        cout << cr;
        n--;
    }
}